package com.itheima.users.service;

import com.itheima.users.dao.UserDatabase;
import com.itheima.users.entity.Result;
import com.itheima.users.entity.User;

public class UserServiceImpl implements UserService {

    private UserDatabase userDB ;

    public UserServiceImpl(UserDatabase userDB) {
        this.userDB = userDB;
    }

    @Override
    public com.itheima.chap04.Result register(String username, String password) {
       // 1.校验基本数据信息
       // 1.1校验用户名
        if(isEmptyString(username)){
           // 用户名有误
           return Result.error("用户名不能为空");
       }
        // 1.2校验密码
       if(isEmptyString(password)){
           // 密码有误
           return Result.error("密码不能为空");
       }
       // 2.校验用户是否存在
        User user = userDB.queryByUserId(username);
       if(user != null){
           // 用户已存在
           return Result.error("用户已存在");
       }
        // 3.保存用户信息
        user = new User(username, password);
       userDB.save(user);
        return Result.ok(user);
    }

    @Override
    public com.itheima.chap04.Result login(String username, String password) {
        // 1.校验基本数据信息
        if(isEmptyString(username) || isEmptyString(password)){
            return Result.error("用户名或密码不能为空");
        }
        // 2.根据用户名查询用户
        User user = userDB.queryByUserId(username);
        // 3.判断用户名是否存在
        if (user == null) {
            return Result.error("用户名不存在");
        }
        // 4.校验密码是否正确
        if (!password.equals(user.getPassword())) {
            return Result.error("密码错误");
        }
        return Result.ok(user);
    }

    private static boolean isEmptyString(String str) {
        return str == null || str.equals("");
    }
}
